#include "BulletCollision/BroadphaseCollision/btBroadphaseProxy.h"
#ifdef __cplusplus
extern "C" {
#endif
btBroadphaseProxy* bullet_NewbtBroadphaseProxy(){
	btBroadphaseProxy* wrap_out = new btBroadphaseProxy();
	return wrap_out;
}

btBroadphaseProxy* bullet_NewbtBroadphaseProxy1(btVector3* aabbMin,btVector3* aabbMax,void* userPtr,int collisionFilterGroup,int collisionFilterMask){
	btVector3 const& c_arg_aabbMin=(btVector3 const&)(*aabbMin);
	btVector3 const& c_arg_aabbMax=(btVector3 const&)(*aabbMax);
	void * c_arg_userPtr=(void *)(void*)(userPtr);
	int c_arg_collisionFilterGroup=collisionFilterGroup;
	int c_arg_collisionFilterMask=collisionFilterMask;
	btBroadphaseProxy* wrap_out = new btBroadphaseProxy(c_arg_aabbMin,c_arg_aabbMax,c_arg_userPtr,c_arg_collisionFilterGroup,c_arg_collisionFilterMask);
	return wrap_out;
}

btVector3* bullet_btBroadphaseProxy_GetFieldOfM_aabbMax(btBroadphaseProxy* c_this){
	return (btVector3*)(&c_this->m_aabbMax);
}

btVector3* bullet_btBroadphaseProxy_GetFieldOfM_aabbMin(btBroadphaseProxy* c_this){
	return (btVector3*)(&c_this->m_aabbMin);
}

void** bullet_btBroadphaseProxy_GetFieldOfM_clientObject(btBroadphaseProxy* c_this){
	return (void**)(&c_this->m_clientObject);
}

int bullet_btBroadphaseProxy_GetFieldOfM_collisionFilterGroup(btBroadphaseProxy* c_this){
	return (int)(c_this->m_collisionFilterGroup);
}

int bullet_btBroadphaseProxy_GetFieldOfM_collisionFilterMask(btBroadphaseProxy* c_this){
	return (int)(c_this->m_collisionFilterMask);
}

int bullet_btBroadphaseProxy_GetFieldOfM_uniqueId(btBroadphaseProxy* c_this){
	return (int)(c_this->m_uniqueId);
}

int bullet_btBroadphaseProxy_getUid(btBroadphaseProxy* c_this){
	int c_out = c_this->getUid();
	int wrap_out = (c_out);
	return wrap_out;
}

bool bullet_btBroadphaseProxy_isCompound(btBroadphaseProxy* c_this,int proxyType){
	int c_arg_proxyType=proxyType;
	bool c_out = c_this->isCompound(c_arg_proxyType);
	bool wrap_out = (c_out);
	return wrap_out;
}

bool bullet_btBroadphaseProxy_isConcave(btBroadphaseProxy* c_this,int proxyType){
	int c_arg_proxyType=proxyType;
	bool c_out = c_this->isConcave(c_arg_proxyType);
	bool wrap_out = (c_out);
	return wrap_out;
}

bool bullet_btBroadphaseProxy_isConvex(btBroadphaseProxy* c_this,int proxyType){
	int c_arg_proxyType=proxyType;
	bool c_out = c_this->isConvex(c_arg_proxyType);
	bool wrap_out = (c_out);
	return wrap_out;
}

bool bullet_btBroadphaseProxy_isConvex2d(btBroadphaseProxy* c_this,int proxyType){
	int c_arg_proxyType=proxyType;
	bool c_out = c_this->isConvex2d(c_arg_proxyType);
	bool wrap_out = (c_out);
	return wrap_out;
}

bool bullet_btBroadphaseProxy_isInfinite(btBroadphaseProxy* c_this,int proxyType){
	int c_arg_proxyType=proxyType;
	bool c_out = c_this->isInfinite(c_arg_proxyType);
	bool wrap_out = (c_out);
	return wrap_out;
}

bool bullet_btBroadphaseProxy_isNonMoving(btBroadphaseProxy* c_this,int proxyType){
	int c_arg_proxyType=proxyType;
	bool c_out = c_this->isNonMoving(c_arg_proxyType);
	bool wrap_out = (c_out);
	return wrap_out;
}

bool bullet_btBroadphaseProxy_isPolyhedral(btBroadphaseProxy* c_this,int proxyType){
	int c_arg_proxyType=proxyType;
	bool c_out = c_this->isPolyhedral(c_arg_proxyType);
	bool wrap_out = (c_out);
	return wrap_out;
}

bool bullet_btBroadphaseProxy_isSoftBody(btBroadphaseProxy* c_this,int proxyType){
	int c_arg_proxyType=proxyType;
	bool c_out = c_this->isSoftBody(c_arg_proxyType);
	bool wrap_out = (c_out);
	return wrap_out;
}

btBroadphasePairSortPredicate* bullet_NewbtBroadphasePairSortPredicate(){
	btBroadphasePairSortPredicate* wrap_out = new btBroadphasePairSortPredicate();
	return wrap_out;
}

btBroadphasePair* bullet_NewbtBroadphasePair(){
	btBroadphasePair* wrap_out = new btBroadphasePair();
	return wrap_out;
}

btBroadphasePair* bullet_NewbtBroadphasePair1(btBroadphaseProxy* proxy0,btBroadphaseProxy* proxy1){
	btBroadphaseProxy& c_arg_proxy0=(btBroadphaseProxy&)(*proxy0);
	btBroadphaseProxy& c_arg_proxy1=(btBroadphaseProxy&)(*proxy1);
	btBroadphasePair* wrap_out = new btBroadphasePair(c_arg_proxy0,c_arg_proxy1);
	return wrap_out;
}

btBroadphaseProxy** bullet_btBroadphasePair_GetFieldOfM_pProxy0(btBroadphasePair* c_this){
	return (btBroadphaseProxy**)(&c_this->m_pProxy0);
}

btBroadphaseProxy** bullet_btBroadphasePair_GetFieldOfM_pProxy1(btBroadphasePair* c_this){
	return (btBroadphaseProxy**)(&c_this->m_pProxy1);
}

#ifdef __cplusplus
}
#endif
